#ifndef MUSICLIST_H
#define MUSICLIST_H

#include <QVector>
#include "music.h"
#include <QSet>

using iterator = QVector<Music>::iterator;

class MusicList
{
public:
    MusicList();
    // 读取元素到musicList中
    void addMusicsToList(const QList<QUrl>& urlList);
    // 查找指定 MusicId 是否在 musicList 中
    iterator findMusicByMusicId(const QString& musicId);

    // 为了支持范围 for
    iterator begin();
    iterator end();

    // 将音乐信息写入数据库中
    void writeToDB();
    // 刚启动程序的时候，查询并写入数据库里的信息
    void readFromDB();

private:
    QVector<Music> musicList;
    // 存储每一个歌曲的 url，用来过滤重复的歌曲
    QSet<QString> musicPaths;
};

#endif // MUSICLIST_H
